﻿#region Using

using System;
using System.Windows.Forms;

#endregion Using

namespace T4_Eind_programma
{
    public partial class OEEScherm : Form
    {
        #region Constructor

        public OEEScherm(OEEItem mijnOee)
        {
            InitializeComponent();
            LoadOeeItemIntoListView(mijnOee);
            LoadRedenenIntoListView(mijnOee);
        }

        #endregion Constructor

        public bool CheckStringForWrite(ItemInfo item)
        {
            bool write = true;
            try
            {
                if (item.FilteredName.Contains("DB") || item.FilteredName.Contains("#"))
                    write = false;
            }
            catch (Exception)
            {
            }

            return write;
        }

        private void LoadOeeItemIntoListView(OEEItem mijnOee)
        {
            if (listViewOEE.InvokeRequired)
            {
                listViewOEE.Invoke(new MethodInvoker(() => { LoadOeeItemIntoListView(mijnOee); }));
            }
            else
            {
                try
                {
                    listViewOEE.Items.Clear();
                    foreach (ItemInfo item in mijnOee.ApparatenLijst)
                    {
                        if (CheckStringForWrite(item) == true)
                        {
                            ListViewItem lv = new ListViewItem(item.FilteredName);
                            lv.SubItems.Add(item.ElapsedTime.ToString("HH:mm:ss"));
                            lv.SubItems.Add(item.BerekenEffectiviteit(Convert.ToDateTime(mijnOee.TotaleTijdActiefVanSessie.ToString())));
                            listViewOEE.Items.Add(lv);
                        }
                    }
                    listViewOEE.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                }
                catch (Exception)
                {
                }
            }
        }

        private void LoadRedenenIntoListView(OEEItem mijnOee)
        {
            if (mijnOee.RedenLijst.Count > 0)
            {
                if (listViewStilstaan.InvokeRequired)
                {
                    listViewStilstaan.Invoke(new MethodInvoker(() => { LoadRedenenIntoListView(mijnOee); }));
                }
                else
                {
                    try
                    {
                        listViewStilstaan.Items.Clear();
                        foreach (var item in mijnOee.RedenLijst)
                        {
                            ListViewItem lv = new ListViewItem(item.BeginTijd.ToString());
                            lv.SubItems.Add(item.TijdInactiefDateTime.ToString("HH:mm:ss"));
                            lv.SubItems.Add(item.Reden.ToString());
                            listViewStilstaan.Items.Add(lv);
                        }
                        listViewStilstaan.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }
    }
}